package com.yc.services;

import com.yc.web.DTO.AddressDTO;

import java.util.List;

public interface AddressService {
    /**
     * 新增地址
     * @param addressDTO 地址信息
     * @return 新增的地址DTO
     */
    AddressDTO addAddress(AddressDTO addressDTO);

    /**
     * 更新地址
     * @param addressDTO 地址信息
     * @return 更新后的地址DTO
     */
    AddressDTO updateAddress(AddressDTO addressDTO);

    /**
     * 删除地址（逻辑删除）
     * @param addressId 地址ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteAddress(Long addressId, Long userId);

    /**
     * 获取用户地址列表
     * @param userId 用户ID
     * @return 地址DTO列表
     */
    List<AddressDTO> getUserAddresses(Long userId);

    /**
     * 获取地址详情
     * @param addressId 地址ID
     * @param userId 用户ID
     * @return 地址DTO
     */
    AddressDTO getAddressDetail(Long addressId, Long userId);
    /**
     * 设置默认地址
     * @param addressId 地址ID
     * @param userId 用户ID
     * @return 是否设置成功
     */
    boolean setDefaultAddress(Long addressId, Long userId);

    /**
     * 获取用户的默认地址ID
     * @param userId 用户ID
     * @return 默认地址ID，如果没有默认地址则返回null
     */
    Long getDefaultAddressId(Long userId);
}
